Networks of computers have become common, and even a commodity. A wide variety of techniques exist that arrange for a network of computers to co-operate towards achieving a goal, or a set of goals (i.e., to participate in a “distributed computing” task or application), however each has its drawbacks. Some techniques are handcrafted to suit particular applications. While some applications can justify the time and resources (“costs”) required for custom techniques, there are many applications that would benefit from distributed computing but for which custom techniques are prohibitively expensive.
Some conventional distributed computing frameworks seek to address this issue, but many such frameworks incorporate cumbersome, heavyweight techniques and/or computer programming “platforms” that are still too costly for a large class of applications. Some conventional distributed computing frameworks can be at least moderately accessible with respect to some applications, but have other drawbacks. For example, some conventional distributed computing frameworks are associated with computer networks that have availability, cost and/or security issues, or with new computer network creation and maintenance techniques that have such issues. Even relatively modest barriers to participation can slow or prevent network establishment and/or growth to desired scales of thousands, millions and more of concurrently participating processors.
Same numbers are used throughout the disclosure and figures to reference like components and features, but such repetition of number is for purposes of simplicity of explanation and understanding, and should not be viewed as a limitation on the various embodiments.